package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.Engineer;
import com.shrcl.engineerprocess.domain.impl.EngineerImpl;
import com.shrct.businessprocess.organization.RCEmployee;
import com.shrct.businessprocess.organization.RCEnterprise;
import com.shrct.businessprocess.organization.impl.RCEmployeeImpl;
import com.shrct.businessprocess.organization.impl.RCEnterpriseImpl;
import com.shrct.businessprocess.product.RCBrand;
import com.shrct.businessprocess.product.impl.RCBrandImpl;
import edu.fudan.mylang.pf.BaseDataType;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

public class ServiceRequestInfo extends BaseDataType {
  public ServiceRequestInfo() {
    super();
  }
  
  private String reqeustInfoName;
  
  public String getReqeustInfoName() {
    return this.reqeustInfoName;
  }
  
  public ServiceRequestInfo setReqeustInfoName(final String reqeustInfoName) {
    this.reqeustInfoName = reqeustInfoName;
    return this;			
    
  }
  
  private String projectName;
  
  public String getProjectName() {
    return this.projectName;
  }
  
  public ServiceRequestInfo setProjectName(final String projectName) {
    this.projectName = projectName;
    return this;			
    
  }
  
  @JoinColumn(name = "customer_id")
  @ManyToOne(targetEntity = RCEnterpriseImpl.class, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
  private RCEnterprise customer;
  
  public RCEnterprise getCustomer() {
    return this.customer;
  }
  
  public ServiceRequestInfo setCustomer(final RCEnterprise customer) {
    this.customer = customer;
    return this;			
    
  }
  
  private String contact;
  
  public String getContact() {
    return this.contact;
  }
  
  public ServiceRequestInfo setContact(final String contact) {
    this.contact = contact;
    return this;			
    
  }
  
  private String phoneNumber;
  
  public String getPhoneNumber() {
    return this.phoneNumber;
  }
  
  public ServiceRequestInfo setPhoneNumber(final String phoneNumber) {
    this.phoneNumber = phoneNumber;
    return this;			
    
  }
  
  private String email;
  
  public String getEmail() {
    return this.email;
  }
  
  public ServiceRequestInfo setEmail(final String email) {
    this.email = email;
    return this;			
    
  }
  
  @JoinColumn(name = "salesMan_id")
  @ManyToOne(targetEntity = RCEmployeeImpl.class, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
  private RCEmployee salesMan;
  
  public RCEmployee getSalesMan() {
    return this.salesMan;
  }
  
  public ServiceRequestInfo setSalesMan(final RCEmployee salesMan) {
    this.salesMan = salesMan;
    return this;			
    
  }
  
  private String installationAddress;
  
  public String getInstallationAddress() {
    return this.installationAddress;
  }
  
  public ServiceRequestInfo setInstallationAddress(final String installationAddress) {
    this.installationAddress = installationAddress;
    return this;			
    
  }
  
  private Boolean hasOnSiteService;
  
  public Boolean getHasOnSiteService() {
    return this.hasOnSiteService;
  }
  
  public ServiceRequestInfo setHasOnSiteService(final Boolean hasOnSiteService) {
    this.hasOnSiteService = hasOnSiteService;
    return this;			
    
  }
  
  private String deliveryDate;
  
  public String getDeliveryDate() {
    return this.deliveryDate;
  }
  
  public ServiceRequestInfo setDeliveryDate(final String deliveryDate) {
    this.deliveryDate = deliveryDate;
    return this;			
    
  }
  
  private Date installationDate;
  
  public Date getInstallationDate() {
    return this.installationDate;
  }
  
  public ServiceRequestInfo setInstallationDate(final Date installationDate) {
    this.installationDate = installationDate;
    return this;			
    
  }
  
  private Integer plannedDays;
  
  public Integer getPlannedDays() {
    return this.plannedDays;
  }
  
  public ServiceRequestInfo setPlannedDays(final Integer plannedDays) {
    this.plannedDays = plannedDays;
    return this;			
    
  }
  
  private Integer guarranteeYears;
  
  public Integer getGuarranteeYears() {
    return this.guarranteeYears;
  }
  
  public ServiceRequestInfo setGuarranteeYears(final Integer guarranteeYears) {
    this.guarranteeYears = guarranteeYears;
    return this;			
    
  }
  
  @JoinColumn(name = "preSaleEngineer_id")
  @ManyToOne(targetEntity = EngineerImpl.class, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
  private Engineer preSaleEngineer;
  
  public Engineer getPreSaleEngineer() {
    return this.preSaleEngineer;
  }
  
  public ServiceRequestInfo setPreSaleEngineer(final Engineer preSaleEngineer) {
    this.preSaleEngineer = preSaleEngineer;
    return this;			
    
  }
  
  private String preSaleProposal;
  
  public String getPreSaleProposal() {
    return this.preSaleProposal;
  }
  
  public ServiceRequestInfo setPreSaleProposal(final String preSaleProposal) {
    this.preSaleProposal = preSaleProposal;
    return this;			
    
  }
  
  private String outSourcingService;
  
  public String getOutSourcingService() {
    return this.outSourcingService;
  }
  
  public ServiceRequestInfo setOutSourcingService(final String outSourcingService) {
    this.outSourcingService = outSourcingService;
    return this;			
    
  }
  
  private Boolean isOutSourcingService;
  
  public Boolean getIsOutSourcingService() {
    return this.isOutSourcingService;
  }
  
  public ServiceRequestInfo setIsOutSourcingService(final Boolean isOutSourcingService) {
    this.isOutSourcingService = isOutSourcingService;
    return this;			
    
  }
  
  private Boolean isRequiredEngineerAssistant;
  
  public Boolean getIsRequiredEngineerAssistant() {
    return this.isRequiredEngineerAssistant;
  }
  
  public ServiceRequestInfo setIsRequiredEngineerAssistant(final Boolean isRequiredEngineerAssistant) {
    this.isRequiredEngineerAssistant = isRequiredEngineerAssistant;
    return this;			
    
  }
  
  private String serviceBrand;
  
  public String getServiceBrand() {
    return this.serviceBrand;
  }
  
  public ServiceRequestInfo setServiceBrand(final String serviceBrand) {
    this.serviceBrand = serviceBrand;
    return this;			
    
  }
  
  @JoinColumn(name = "deviceBrand_id")
  @ManyToOne(targetEntity = RCBrandImpl.class, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
  private RCBrand deviceBrand;
  
  public RCBrand getDeviceBrand() {
    return this.deviceBrand;
  }
  
  public ServiceRequestInfo setDeviceBrand(final RCBrand deviceBrand) {
    this.deviceBrand = deviceBrand;
    return this;			
    
  }
  
  private String outSourcingPhone;
  
  public String getOutSourcingPhone() {
    return this.outSourcingPhone;
  }
  
  public ServiceRequestInfo setOutSourcingPhone(final String outSourcingPhone) {
    this.outSourcingPhone = outSourcingPhone;
    return this;			
    
  }
  
  public static ServiceRequestInfo create() {
    return new ServiceRequestInfo();
    
    
  }
}
